/* Copyright 2011 Elektrobit Wireless Communications Oy (EB)


  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License version 2 as 
  published by the Free Software Foundation.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License along
  with this program; if not, write to the Free Software Foundation, Inc.,
  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.


 *All rights reserved 
 *Version:Elektrobit_Qt_1.0.0_20110305 */


#include "ebgalleryapplication.h"

#include "servicemanager.h"
#include "services/services.h"
#include "myregisterclass.h"

#include <QDeclarativeEngine>
#include <QDeclarativeContext>
#include <QDeclarativeItem>


EBGalleryApplication::EBGalleryApplication(int &argc, char **argv) :
    QApplication(argc, argv)
{
    this->servicesStart = false;
    this->welcomePageFinish = false;
    appView = new QDeclarativeView();

    appView->engine()->rootContext()->setContextObject(this);
    appView->setSource(QString("./cn/qml/welcomepage.qml"));

    connect(SERVICE_MANAGER, SIGNAL(servicesStarted()), this, SLOT(servicesStarted()));

}

void EBGalleryApplication::init()
{
    Qt::WindowFlags flags = Qt::Window | Qt::FramelessWindowHint;
    appView->setWindowFlags(flags);

    QRect rect(0, 0, 640, 360);
    appView->setGeometry(rect);


#ifndef Q_OS_SYMBIAN
    appView->show();
#else
    appView->showFullScreen();
#endif

    (new MyRegisterClass())->registerClass();
    SERVICE_MANAGER->init("services.xml");
    SERVICE_MANAGER->start();

}

void EBGalleryApplication::servicesStarted()
{
    this->servicesStart = true;
    if(this->welcomePageFinish) {
        SERVICE(RouterService)->redirectTo("HomePage");
        SERVICE(BackgroundService)->showBackgroundWidget();
        appView->hide();
    }
}

void EBGalleryApplication::welcomePageFinished()
{
    this->welcomePageFinish = true;
    if(this->servicesStart) {
        SERVICE(RouterService)->redirectTo("HomePage");
        SERVICE(BackgroundService)->showBackgroundWidget();
        appView->hide();
    }
}
